<!DOCTYPE html>
<html lang="en">

<head>
  <meta charset="UTF-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Document</title>
  <style>
    * {
      margin: 0;
      padding: 0;
    }

    ul,
    li {
      list-style: none;
    }

    .clearfix::after {
      content: "";
      display: block;
      clear: both;
    }

    .tab-container {
      width: 450px;
      margin: 100px auto;
      background: #ccc;
    }

    #tabs {
      border-bottom: 1px solid #000;
    }

    #tabs li {
      float: left;
      width: 150px;
      height: 40px;
      line-height: 40px;
      text-align: center;
      cursor: pointer;
    }

    #tabs li.active {
      background: #000;
      color: #fff;
    }

    #content div {
      height: 300px;
      display: none;
    }

    #content div.active {
      display: block;
    }
  </style>
</head>

<body>
  <div class="tab-container">
    <!-- 标签 -->
    <ul id="tabs" class="clearfix">
      <li index="0" class="active">HTML</li>
      <li index="1">CSS</li>
      <li index="2">JavaScript</li>
    </ul>
    <!-- 内容 -->
    <div id="content">
      <div class="active">11111111</div>
      <div>22222222</div>
      <div>33333333</div>
    </div>
  </div>
  <script>
    var aLi = document.querySelectorAll('#tabs li')
    var aDiv = document.querySelectorAll('#content div')

    // 1、给li添加自定义的js属性
    // for (var i = 0; i < aLi.length; i++) {
    //   aLi[i].index = i
    //   aLi[i].onclick = function () {
    //     // 清空之前的激活状态
    //     for (var i = 0; i < aLi.length; i++) {
    //       aLi[i].className = ''
    //       aDiv[i].className = ''
    //     }
    //     // 给点击的li设置激活类
    //     this.className = 'active'
    //     // 切换content的active类
    //     aDiv[this.index].className = 'active'
    //   }
    // }

    // 2、给li添加自定义的dom属性
    // for (var i = 0; i < aLi.length; i++) {
    //   aLi[i].onclick = function () {
    //     // 清空之前的激活状态
    //     for (var i = 0; i < aLi.length; i++) {
    //       aLi[i].className = ''
    //       aDiv[i].className = ''
    //     }
    //     // 给点击的li设置激活类
    //     this.className = 'active'
    //     // 切换content的active类
    //     aDiv[this.getAttribute('index')].className = 'active'
    //   }
    // }

    // 3、利用闭包
    for (var i = 0; i < aLi.length; i++) {
      (function (index) {
        aLi[i].onclick = function () {
          // 清空之前的激活状态
          for (var i = 0; i < aLi.length; i++) {
            aLi[i].className = ''
            aDiv[i].className = ''
          }
          // 给点击的li设置激活类
          this.className = 'active'
          // 切换content的active类
          aDiv[index].className = 'active'
        }
      })(i)
    }

  </script>
</body>

</html>